// readonly：表示只读，用于防止在构造函数之外属性进行赋值
class IPerson {
  readonly age: number = 19
  // readonly age = 19 如果不给age 添加 number类型 则默认为常量 如 const age = 19 常量不能修改
  constructor(age: number) {
    this.age = age
  }

  // age 为readonly 只读属性，所以不能修改
  // setAge(age: number) {
  //   this.age = age
  // }
}

type Hello = {
  readonly uname: string
  // readonly uname: '张三'
  age: number
}

let obj: Hello = {
  uname: '张三',
  age: 16
}
// obj.uname = '李四' // 报错 因为 uname为只读
obj.age = 99

interface myInter {
  readonly age: number
  hobby: string
}

let OBJ: myInter = {
  hobby: '打篮球',
  age: 10
}
// OBJ.age = 111 报错 因为 age为只读
